﻿/*
输入：
3 2
输出：
3
*/

// 一个n阶楼梯，一次最多爬m阶
string[] nmStringArr = Console.ReadLine().Split(" ");
int n = int.Parse(nmStringArr[0]);
int m = int.Parse(nmStringArr[1]);

// 排列数
int[] dp = new int[n + 1];
dp[0] = 1;

for (int i = 1; i <= n; i++)
{
    for (int j = 1; j <= m; j++)
    {
        if (i >= j) dp[i] += dp[i - j];
    }
}
Console.WriteLine(dp[n]);